// 1. 初始化云环境
wx.cloud.init({ env: "itcast-zftt8" });
// 2. 连接云数据库
const db = wx.cloud.database()
// 3. 打开 hero 集合(文件)
const heroCollection = db.collection('hero');



Page({
  async getHeroListHandle(){
    // 1️⃣ 查询数据库
    const res = await heroCollection.get()
    console.log(111, res);
  },
  // 创建者标识  _openid
  async addHeroHandle(){
    // 通过代码方式添加的数据，会自动添加 _openid 自动用于标识数据创建者
    const res = await heroCollection.add({
      data:{
        name:"哈哈" + Date.now(),
        age: Math.floor(Math.random() * 50),
        gender:'男',
        isdelete:false
      }
    })
    console.log(res);
  },
  async getHeroByIdHandle(){
    const _id = '28ee4e3e603afd4007fe7bf234b1413c';
    // doc()   方法可以根据 id 找到一条数据  
    const res= await heroCollection.doc(_id).get()
    console.log(res);
  },
  // 真·删除
  async removeHeroByIdHandle(){
    const _id = '79550af2603b1188077bc5b470f3080a';
    const res = await heroCollection.doc(_id).remove()
    console.log(res);
  },
  // 软删除 - 更新
  async removeSoftHeroByIdHandle(){
    const _id = '28ee4e3e603afd4007fe7bf234b1413c';
    const res = await heroCollection.doc(_id).update({
      data:{
        isdelete: true
      }
    })
    console.log(res);
  },
  async whereHandle(){
    // where 和 doc 查找的区别：
    //   where 返回值是 数组，doc 返回值是对象
    //   doc 查找不存在的 id 会报错 
    const res = await heroCollection.where({
      // 值支持正则表达式写法
      name: new RegExp('a','i')
    }).get()
    console.log(res);
  },
  async orderByAndLimitHandle(){
    const res = await heroCollection
      .orderBy('age','asc')   // 排序： asc 正序   desc 逆序
      .skip(0).limit(3)       // 分页： skip() 跳过多少条   limit() 限制取多少条
      .get()
    console.log(res);
  }
})